package com.cms.recursoshumanos.json.object;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import com.cms.recursoshumanos.cache.ListaTipoArticuloCache;
import com.cms.recursoshumanos.constant.Constant;
import com.cms.recursoshumanos.object.TipoArticulo;
import com.cms.recursoshumanos.object.list.ListaTipoArticulo;

public class JsonObjectGetTipoArticulo 
{

	public static JsonObjectGetTipoArticulo _instance = null;
	public static JsonObjectGetTipoArticulo getInstance() {
		if(_instance == null)
			_instance = new JsonObjectGetTipoArticulo();
		
		return _instance;
	}
	public String Result;
	private static final String
	
		GETTIPOARTICULO = "GETTIPOARTICULO",
		GETTIPOARTICULO_STATUS = "STATUS",
		GETTIPOARTICULO_DATA = "DATA",
		GETTIPOARTICULO_DATOS_TIPO_ARTICULO = "DATOS_TIPO_ARTICULO",
		
		GETTIPOARTICULO_TIPO_ARTICULO_ID = "tipo_articulo_id",
		GETTIPOARTICULO_NOMBRE_TIPO_ARTICULO = "nombre_tipo_articulo",
		GETTIPOARTICULO_DESCRIPCION_TIPO_ARTICULO = "descripcion_tipo_articulo";
	

	
	
	
	public void fromJSON (String jsonString) 
	{
		if (jsonString != null)
		{
			if (!jsonString.equals(""))
			{
				try
				{
					JSONObject jsonObject = new JSONObject(jsonString);	
					JSONObject getListaEvento = jsonObject.getJSONArray(GETTIPOARTICULO).getJSONObject(0);
					String status = getListaEvento.getString(GETTIPOARTICULO_STATUS);
					
					Result = status;
					
					if (status.equals(Constant.CODE_OK))
					{
		
						JSONArray data = getListaEvento.getJSONArray(GETTIPOARTICULO_DATA);
						
						JSONObject objeto_data = data.getJSONObject(0);
						JSONArray datos_articulo = objeto_data.getJSONArray(GETTIPOARTICULO_DATOS_TIPO_ARTICULO);
		
						ListaTipoArticulo listado = new ListaTipoArticulo();
						
						for (int i = 0; i < datos_articulo.length(); i++ )
						{
							
								
								JSONObject json_evento = datos_articulo.getJSONObject(i);
								
								listado.addTipoArticulo(new TipoArticulo(Integer.parseInt(json_evento.getString(GETTIPOARTICULO_TIPO_ARTICULO_ID)),
																																json_evento.getString(GETTIPOARTICULO_NOMBRE_TIPO_ARTICULO),
																																json_evento.getString(GETTIPOARTICULO_DESCRIPCION_TIPO_ARTICULO)));
						
							
										
						}
						ListaTipoArticuloCache.getInstance().setListaTipoArticulo(listado);
					}
					
				} 
				catch (JSONException ex) 
				{
					ex.printStackTrace();
					Result = Constant.CODE_EMPTY;
				}
				catch (Exception ex) 
				{
					ex.printStackTrace();
					Result = Constant.CODE_EMPTY;
				}
			}
			else
			{
				Result = Constant.CODE_NOT_SERVER_RESPONSE;
			}
		}
		else
		{
			Result = Constant.CODE_NOT_SERVER_RESPONSE;
		}
	
	}

	public String getResult()
	{
		return Result;
	}
	
}



